module.exports =
  autoToggle:
    title: "Auto Toggle"
    description: "Toggle on start."
    type: "boolean"
    default: true
    order: 1

  comboMode:
    type: "object"
    order: 2
    properties:
      enabled:
        title: "Combo Mode - Enabled"
        description: "When enabled effects won't appear until reach the activation threshold."
        type: "boolean"
        default: true
        order: 1

      multiplier:
        title: "Combo Mode - Multiplier"
        description: "Turn the multiplier on/off. (multiplier = streak * current level)."
        type: "boolean"
        default: true
        order: 2

      activationThreshold:
        title: "Combo Mode - Activation Threshold"
        description: "Streak threshold to activate the power mode and levels."
        type: "array"
        default: ['20', '50', '100', '200', '500']
        # items:
        #   type: "integer"
        #   minimum: 1
        #   maximum: 1000

      streakTimeout:
        title: "Combo Mode - Streak Timeout"
        description: "Timeout to reset the streak counter. In seconds."
        type: "integer"
        default: 10
        minimum: 1
        maximum: 100

      exclamationEvery:
        title: "Combo Mode - Exclamation Every"
        description: "Shows an exclamation every streak count. (Let in 0 to disable)"
        type: "integer"
        default: 10
        minimum: 0
        maximum: 100

      exclamationTexts:
        title: "Combo Mode - Exclamation Texts"
        description: "Exclamations to show (randomized)."
        type: "array"
        default: ["Super!", "Radical!", "Fantastic!", "Great!", "OMG", "Whoah!", ":O", "Nice!", "Splendid!", "Wild!", "Grand!", "Impressive!", "Stupendous!", "Extreme!", "Awesome!"]

      opacity:
        title: "Combo Mode - Opacity"
        description: "Opacity of the streak counter."
        type: "number"
        default: 0.6
        minimum: 0
        maximum: 1

  particles:
    type: "object"
    order: 3
    properties:
      enabled:
        title: "Particles - Enabled"
        description: "Turn the particles on/off."
        type: "boolean"
        default: true
        order: 1

      colours:
        type: "object"
        properties:
          type:
            title: "Colours"
            description: "Configure colour options"
            description: "Configure colour options. You can also use the command `Activate Power Mode:Select Color`"
            type: "string"
            default: "cursor"
            enum: [
              {value: 'cursor', description: 'Colour at the cursor.'}
              {value: 'randomSpawn', description: 'Random colour per spawn.'}
              {value: 'random', description: 'Random colours per particle.'}
              {value: 'fixed', description: 'Fixed colour.'}
            ]
            order: 1

          fixed:
            title: "Fixed colour"
            description: "Colour when fixed colour is selected"
            type: "color"
            default: "#fff"

          randomType:
            title: "Random colour type"
            description: "Type of ramdom colour"
            type: "string"
            default: 'bright'
            enum: [
              {value: 'bright', description: 'Bright colours'}
              {value: 'all', description: 'All colours'}
            ]

      totalCount:
        type: "object"
        properties:
          max:
            title: "Particles - Max Total"
            description: "The maximum total number of particles on the screen."
            type: "integer"
            default: 500
            minimum: 0

      spawnCount:
        type: "object"
        properties:
          min:
            title: "Particles - Minimum Spawned"
            description: "The minimum (randomized) number of particles spawned on input."
            type: "integer"
            default: 5

          max:
            title: "Particles - Maximum Spawned"
            description: "The maximum (randomized) number of particles spawned on input."
            type: "integer"
            default: 15

      size:
        type: "object"
        properties:
          min:
            title: "Particles - Minimum Size"
            description: "The minimum (randomized) size of the particles."
            type: "integer"
            default: 2
            minimum: 0

          max:
            title: "Particles - Maximum Size"
            description: "The maximum (randomized) size of the particles."
            type: "integer"
            default: 4
            minimum: 0

      effect:
        title: "Effect"
        description: "Defines the canvas effect. Select it with the command `Activate Power Mode:Select Effect`"
        type: "string"
        default: ""
        order: 7

  screenShake:
    type: "object"
    order: 4
    properties:
      enabled:
        title: "Screen Shake - Enabled"
        description: "Turn the shaking on/off."
        type: "boolean"
        default: true

      minIntensity:
        title: "Screen Shake - Minimum Intensity"
        description: "The minimum (randomized) intensity of the shake."
        type: "integer"
        default: 1
        minimum: 0
        maximum: 100

      maxIntensity:
        title: "Screen Shake - Maximum Intensity"
        description: "The maximum (randomized) intensity of the shake."
        type: "integer"
        default: 3
        minimum: 0
        maximum: 100

  playAudio:
    type: "object"
    order: 5
    properties:
      enabled:
        title: "Play Audio - Enabled"
        description: "Play audio clip on/off."
        type: "boolean"
        default: false
        order: 1

      audioclip:
        title: "Play Audio - Audioclip"
        description: "Which audio clip played at keystroke."
        type: "string"
        default: '../audioclips/gun.wav'
        enum: [
          {value: '../audioclips/gun.wav', description: 'Gun'}
          {value: '../audioclips/typewriter.wav', description: 'Type Writer'}
          {value: 'customAudioclip', description: 'Custom Path'}
        ]
        order: 3

      customAudioclip:
        title: "Play Audio - Path to Audioclip"
        description: "Path to audioclip played at keystroke."
        type: "string"
        default: 'rocksmash.wav'
        order: 4

      volume:
        title: "Play Audio - Volume"
        description: "Volume of the audio clip played at keystroke."
        type: "number"
        default: 0.42
        minimum: 0.0
        maximum: 1.0
        order: 2

  excludedFileTypes:
    order: 6
    type: "object"
    properties:
      excluded:
        title: "Prohibit activate-power-mode from enabling on these file types:"
        description: "Use comma separated, lowercase values (i.e. \"html, cpp, css\")"
        type: "array"
        default: ["."]

  flow:
    title: "Flow"
    description: "Defines the flow when typing. Select with the command `Activate Power Mode:Select Flow`"
    type: "string"
    default: ""
    order: 7

  plugins:
    type: "object"
    order: 8
    properties: {}
